#include <stdio.h>
#include <algorithm>
#include <math.h>
#include <string.h>
using namespace std;

#define TRACE(x...)

int k;
int n;
char curr[110][6];
double table[110][110];
double dist[110][110];
char s[6]; char t[6];

int main() {
	scanf("%d", &k);

	while (k--) {
		scanf("%d", &n);

		for (int i=0; i<n; i++) scanf(" %s", curr[i]);
		
		for (int i=0; i<n; i++) {
			for (int j=0; j<n; j++) scanf("%lf", &table[i][j]);
		}

		scanf(" %s", s); scanf(" %s", t);

		for (int i=0; i<n; i++) {
			for (int j=0; j<n; j++) dist[i][j]= -log(table[i][j]);
		}
		
		TRACE (
			for (int i=0; i<n; i++) {
				for (int j=0; j<n; j++) printf("%lf ", dist[i][j]);
				printf("\n");
			}
			printf("\n");
		);

		for (int k=0; k<n; k++) {
			for (int i=0; i<n; i++)
				for (int j=0; j<n; j++) 
					dist[i][j]=min(dist[i][j], dist[i][k]+dist[k][j]);
		}

		TRACE (
			for (int i=0; i<n; i++) {
				for (int j=0; j<n; j++) printf("%.2lf ", dist[i][j]);
				printf("\n");
			}
		);

		int flag=1;

		for (int i=0; i<n; i++)
			if (dist[i][i]<0) {
				printf("Break the bank!\n");
				flag=0; break;
			}

		if (!flag) continue;

		int a, b;

		for (int i=0; i<n; i++) {
			if (!strcmp(s, curr[i])) a=i;
			else if (!strcmp(t, curr[i])) b=i;
		}

		printf("%.4lf\n", exp(-dist[a][b]));	
	}

	return 0;
}
